package com.hsjk.szwj.module.train.service;

import com.hsjk.szwj.module.train.controller.admin.vo.AdminCourseItemCreateReqVO;
import com.hsjk.szwj.module.train.controller.admin.vo.AdminCourseItemDetailRespVO;
import com.hsjk.szwj.module.train.controller.admin.vo.AdminCourseItemUpdateReqVO;
import com.hsjk.szwj.module.train.controller.admin.vo.AdminGetCourseItemByCourseIdRespVO;

import java.util.List;

/**
 * @author chenjiawei
 * @desc
 * @Date 2023/09/25 17:27
 **/
public interface ICourseItemService {
    /**
     * 根据课程ID获取课程item列表
     *
     * @param courseId
     * @return java.util.List<com.hsjk.szwj.module.train.controller.admin.vo.AdminGetCourseItemByCourseIdRespVO>
     * @author chenjiawei
     * @date 2023/9/25 5:28 PM
     **/
    List<AdminGetCourseItemByCourseIdRespVO> listCourseItemByCourseId(Long courseId);

    /**
     * 根据目录id获取课程item列表
     */
    List<AdminGetCourseItemByCourseIdRespVO> listCourseItemByCatalogId(Long catalogId);

    /**
     * 获取课程item详情
     *
     * @param id
     * @return com.hsjk.szwj.module.train.controller.admin.vo.AdminCourseItemDetailRespVO
     * @author chenjiawei
     * @date 2023/10/29 2:33 PM
     **/
    AdminCourseItemDetailRespVO getCourseItemDetail(Long id);

    /**
     * 创建课程item
     *
     * @param reqVO
     * @return java.lang.Boolean
     * @author chenjiawei
     * @date 2023/10/29 11:51 AM
     **/
    Boolean createCourseItem(AdminCourseItemCreateReqVO reqVO);

    /**
     * 更新课程item
     *
     * @param reqVO
     * @return java.lang.Boolean
     * @author chenjiawei
     * @date 2023/10/29 11:52 AM
     **/
    Boolean updateCourseItem(AdminCourseItemUpdateReqVO reqVO);

    /**
     * 删除课程item
     *
     * @param id
     * @return int
     * @author chenjiawei
     * @date 2023/10/28 4:23 PM
     **/
    Boolean deleteCourseItem(Long id);



    Integer getMemberLiveCourse(Long liveId,Long memberId);
}
